<?php

namespace App\Libs\createcode;

use PHPQRCode\QRcode;
//生成二维码
class CreateCode
{

  public $pic = '';
  public function __construct()
  {
    if (!is_dir(public_path('attach'))) {
      @mkdir(public_path('attach'), 0777);
    }
    if (!is_dir(public_path('attach/qrcodes'))) {
      @mkdir(public_path('attach/qrcodes'), 0777);
    }
    $dir = public_path('attach/qrcodes/png');
    if (!is_dir($dir)) {
      @mkdir($dir, 0777);
    }
    $dir_yuan = public_path('attach/qrcodes/yuan');
    if (!is_dir($dir_yuan)) {
      @mkdir($dir_yuan, 0777);
    }
    $this->pic = public_path('favicon.ico');
    $this->path = ($dir);
    $this->path_yuan = $dir_yuan;
  }
  // 生成带LOGO的二维码
  public  function qrCode($value, $pngName)
  {
    $img = new QRcode();
    // $value = 'http://www.learnphp.cn'; //二维码内容
    $errorCorrectionLevel = 'L'; //容错级别
    $matrixPointSize = 6; //生成图片大小
    $QR = $this->path_yuan . '/' . $pngName;
    //生成二维码图片

    $img->png($value, $QR, $errorCorrectionLevel, $matrixPointSize, 2);
    $logo = $this->pic; // logo在框架的public目录中
    // $QR = 'qrcode.png'; //已经生成的原始二维码图

    if ($logo !== FALSE) {
      $QR = imagecreatefromstring(file_get_contents($QR));
      $logo = imagecreatefromstring(file_get_contents($logo));
      $QR_width = imagesx($QR); //二维码图片宽度
      $QR_height = imagesy($QR); //二维码图片高度
      $logo_width = imagesx($logo); //logo图片宽度
      $logo_height = imagesy($logo); //logo图片高度
      $logo_qr_width = $QR_width / 5;
      $scale = $logo_width / $logo_qr_width;
      $logo_qr_height = $logo_height / $scale;
      $from_width = ($QR_width - $logo_qr_width) / 2;
      //重新组合图片并调整大小
      imagecopyresampled(
        $QR,
        $logo,
        $from_width,
        $from_width,
        0,
        0,
        $logo_qr_width,
        $logo_qr_height,
        $logo_width,
        $logo_height
      );
    }
    //输出图片
    imagepng($QR, $this->path . '/' . $pngName);
    return '/attach/qrcodes/png/' . $pngName;
    // echo '<img src="helloweba.png">';
  }
}
